Three processes used to create complex software applications such as web sites are form, function, and content. Form includes graphic designs, user interfaces, and graphical representations created by a designer or a group of designers. Function includes logical functionality, which can be software code created by a programmer or group of programmers. Form includes informative content. Informative content can include written, recorded, or illustrated documentation, such as photographs, illustrations, product marketing material, and news articles. Content can be created by writers, photographers, artists, reporters, or editors.
Currently, typical workflows dictate a serial approach to integrating the form, function, and content to create complex software applications such as a web site. The serial approach is illustrated in FIG. 1. In FIG. 1, content 10 for a complex software application can be chosen or created. Form 12 for the presentation of content 10 can then be created. Functionality 14 can then be generated using code to create the complex software application (product 16) with the desired information (content 10) and style (form 12). Using the method illustrated in FIG. 1, every final component of the complex software application must be manipulated by a programmer before it is ready to be used. The exact workflow may vary from industry to industry or business to business, but the basic restrictions are generally the same.
A traditional approach such as that illustrated in FIG. 1, may create unwanted bottlenecks in the production process. Each upstream revision, such as a change of content 10 or design 12, forces a repetition of the entire process. As an example, consider a web site for a large newspaper. The web site may have a function that can include a file into the web site. The marketing department may decide to change the appearance of the header on the web site depending on the browser of a user. In this case, a programmer may need to invoke an external script or embed some specific logic within the web site. Unfortunately, if there is a large web site with thousands of pages of information stored on a server, the programmer may have to change every one of the thousands of pages. Therefore, a small change by the marketing department can cause a large burden on the programming department.
Prior art solutions have succeeded in partially separating some of these functions. Notably, content management databases and digital repositories provide a means of separating content from form and function. Likewise, sophisticated software development teams frequently employ internal code structuring techniques that can help to minimize dependencies between interface designs and the functions they access. However, content management tools typically fail to address form/function issues. Therefore, there can still be production slow-downs due to changes in form that require a subsequent change in functionality.